(function() {
	var G = {
		"apiVersion": 1,
		"captchaId": "c8aa71490f44405bbeb8af6223e40273",
		"element": {},
		"appendTo": {},
		"mode": "popup",
		"size": "small",
		"protocol": "https",
		"lang": "zh-CN",
		"width": "320px",
		"startLeft": "0px",
		"ipv6": false,
		"enableClose": false,
		"hideCloseBtn": false,
		"disableMaskClose": false,
		"enableAutoFocus": false,
		"disableFocusVisible": false,
		"refreshInterval": 300,
		"customStyles": {
			"imagePanel": {
				"align": "top",
				"borderRadius": "2px"
			},
			"controlBar": {
				"height": "40px",
				"borderRadius": "2px"
			},
			"gap": "15px",
			"icon": {
				"intellisenseLogo": "",
				"slider": ""
			},
			"primaryColor": ""
		},
		"customTexts": {
			"loading": "加载中...",
			"loadfail": "加载失败",
			"verifySuccess": "验证成功",
			"verifyError": "验证失败，请重试",
			"verifyOutOfLimit": "失败过多，点此重试",
			"clickButton": "点此进行验证",
			"clickInTurn": "请依次点击",
			"clickWordInTurn": "请按语序依次点击文字",
			"slideTip": "向右拖动滑块填充拼图",
			"inferenceTip": "拖动交换2个图块复原图片",
			"waitForSMS": "等待短信验证，剩余",
			"popupTitle": "请完成安全验证",
			"refresh": "刷新",
			"feedback": "提交使用问题反馈",
			"switchToVoice": "切换至语音验证码",
			"playVoice": "播放语音验证码",
			"back": "返回",
			"enterCode": "请输入听到的内容",
			"check": "验证",
			"close": "关闭",
			"notSupportVoice": "您的浏览器版本过低，暂不支持语音验证码",
			"intellisense": {
				"normal": "点击完成验证",
				"checking": "安全检测中",
				"loading": "正在加载验证",
				"loadfail": "加载失败",
				"loaddone": "请完成安全验证",
				"longtap": "双击后长按0.5秒完成验证"
			},
			"sms": {
				"scanQrToSMS": "扫描二维码发送验证短信",
				"noScanQr": "无法扫描二维码",
				"manualSMS": "手动发送验证短信",
				"clickToSMS": "点击按钮发送验证短信",
				"editSMS": "编辑短信",
				"sendSMSTo": "发送至",
				"or": "或",
				"toSMS": "去发送验证短信",
				"cannotJump": "无法跳转"
			}
		},
		"feedbackEnable": true,
		"runEnv": 10,
		"group": "",
		"scene": "",
		"maxVerification": 5,
		"disableValidateInput": false,
		"timeout": 6000,
		"captchaType": 2,
		"__anticheat__": {
			"instance": {}
		},
		"apiServer": [
			"c.dun.163.com",
			"c.dun.163yun.com"
		],
		"staticServer": [
			"cstaticdun.126.net",
			"cstaticdun1.126.net"
		],
		"theme": "light",
		"acConfig": {
			"enable": 1,
			"bid": "c8aa71490f44405bbeb8af6223e40273",
			"pn": "YD20160637306799",
			"token": "9ca17ae2e6fecda16ae2e6eeb5cb528ab69db8ea65bcaeaf9ad05b9c94a3a3c434898987d2b25ef4b2a983bb2af0feacc3b92ae2f4ee95a132e29aa3b1cd72abae8cd1d44eb0b7bb82f55bb08fa3afd437fffeb3"
		},
		"zoneId": "CN31",
		"__serverConfig__": {
			"dt": "qmi7Qkv37apBVgRERROVpEqgnM4A5XjE",
			"ac": {
				"enable": 1,
				"bid": "c8aa71490f44405bbeb8af6223e40273",
				"pn": "YD20160637306799",
				"token": "9ca17ae2e6fecda16ae2e6eeb5cb528ab69db8ea65bcaeaf9ad05b9c94a3a3c434898987d2b25ef4b2a983bb2af0feacc3b92ae2f4ee95a132e29aa3b1cd72abae8cd1d44eb0b7bb82f55bb08fa3afd437fffeb3"
			},
			"imageServer": [
				"necaptcha.nosdn.127.net",
				"necaptcha1.nosdn.127.net"
			],
			"zoneId": "CN31",
			"resources": [
				"/2.25.0/core-optimi.v2.25.0.min.js"
			],
			"apiServer": [
				"c.dun.163.com",
				"c.dun.163yun.com"
			],
			"theme": "light",
			"audio": true,
			"customStyles": true,
			"smart": false,
			"staticServers": [
				"cstaticdun.126.net",
				"cstaticdun1.126.net"
			]
		},
		"__lang__": {}
	};
	this['startLeft'] = parseInt(G['startLeft'], 0xa)
	this['initialDrag'] = Object['assign'](this, {
		'startLeft': this['startLeft']
	})
	this['drag'] = Object['assign']({}, this['initialDrag'])
	this['traceData'] = []
	this['atomTraceData'] = []
	this['mouseDownCounts'] = 0;
}())


async function computers(locations, token, callback) {
	let ind = 0
	let clickCounts = 0
	let startTime = 0
	let pointsStack = []

	startTime = new Date().getTime()

	function A(N) {
		function F(N) {
			return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
		}
		var Fh = panduan;
		N = '' + N;
		for (var X = [], J = 0x0, Z = 0x0, B = N['length'] / 0x2; J < B; J++) {
			let E = parseInt(N[Fh(0x228)](Z++), 0x10) << 0x4;
			let P = parseInt(N[Fh(0x228)](Z++), 0x10);
			X[J] = F(E + P);
		}
		return X;
	}

	function wK(N) {

		function F(N) {
			return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
		}


		var FB = panduan;
		N = window[FB(0x52b)](N);
		for (var X = [], J = 0x0, Z = N[FB(0x3ff)]; J < Z; J++) {
			'%' === N[FB(0x228)](J) ? J + 0x2 < Z && X[FB(0x31b)](A('' + N['charAt'](++J) + N[FB(0x228)](++J))[
					0x0]) :
				X[
					'push'](F(N[FB(0x409)](J)));

		}
		return X;

	}



	function N(wq, wH) {

		function xf(q, H, M) {
			var Kd = panduan,
				j = void 0x0,
				N = void 0x0,
				X = void 0x0,
				J = [];
			switch (q[Kd(0x3ff)]) {
				case 0x1:
					j = q[0x0],
						N = X = 0x0,
						J['push'](H[j >>> 0x2 & 0x3f], H[(j << 0x4 & 0x30) + (N >>> 0x4 & 0xf)], M, M);
					break;
				case 0x2:
					j = q[0x0],
						N = q[0x1],
						X = 0x0,
						J[Kd(0x31b)](H[j >>> 0x2 & 0x3f], H[(j << 0x4 & 0x30) + (N >>> 0x4 & 0xf)], H[(N <<
							0x2 &
							0x3c) + (
							X >>> 0x6 & 0x3)], M);
					break;
				case 0x3:

					j = q[0x0]
					N = q[0x1]
					X = q[0x2]
					// debugger
					J[Kd(0x31b)](H[j >>> 0x2 & 0x3f], H[(j << 0x4 & 0x30) + (N >>> 0x4 & 0xf)], H[(N << 0x2 &
						0x3c) + (
						X >>> 0x6 & 0x3)], H[0x3f & X]);

					break;
				default:
					return '';
			}
			return J[Kd(0x5f8)]('');
		}

		function k(q, H, M) {
			var KO = panduan;
			if (!q || 0x0 === q[KO(0x3ff)])
				return '';
			try {
				for (var j = 0x0, N = []; j < q[KO(0x3ff)];) {

					if (!(j + 0x3 <= q[KO(0x3ff)])) {
						var X = q[KO(0x482)](j);
						N[KO(0x31b)](xf(X, H, M));
						break;
					}
					var J = q['slice'](j, j + 0x3);

					N[KO(0x31b)](xf(J, H, M)),
						j += 0x3;
				}

				return N[KO(0x5f8)]('');
			} catch (Z) {
				return '';
			}
		}

		function T(q) {
			var H = ['i', '/', 'x', '1', 'X', 'g', 'U', '0', 'z', '7', 'k', '8', 'N', '+', 'l', 'C', 'p', 'O',
					'n',
					'P',
					'r', 'v', '6', '\x5c', 'q', 'u', '2', 'G', 'j', '9', 'H', 'R', 'c', 'w', 'T', 'Y', 'Z', '4',
					'b',
					'f', 'S', 'J', 'B', 'h', 'a', 'W', 's', 't', 'A', 'e', 'o', 'M', 'I', 'E', 'Q', '5', 'm',
					'D',
					'd',
					'V', 'F', 'L', 'K', 'y'
				],
				M = '3';
			return k(q, H, M);
		}

		function F(N) {
			return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
		}

		function K(N, X) {
			return F(F(N) ^ F(X));
		}


		var wO = function() {
			var FZ = panduan;
			for (var N = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : [], X =
					arguments[
						FZ(
							0x3ff)] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : [], J = [], Z =
					X[
						FZ(
							0x3ff)], B =
					0x0, E = N[FZ(0x3ff)]; B < E; B++)
				J[B] = K(N[B], X[B % Z]);
			return J;
		}


		var wp = wK(wH),
			wo = wK(wq);



		return T(wO(wp, wo));
	}



	function V(wq) {

		function Z() {
			function wT(N) {
				return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
			}
			var zr = panduan;
			for (var wq = [], wH = 0x0; wH < 0x4; wH++)
				wq[wH] = wT(Math[zr(0x39e)](0x100 * Math[zr(0x2d7)]()));
			return wq;
		}

		function w7() {
			function wm() {
				function K(N, X) {
					return F(F(N) ^ F(X));
				}
				var FZ = panduan;
				var N = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : [], //64
					X = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : [], //64
					J = [],
					Z = X.length,
					B = 0x0;

				for (let E = N.length; B < E; B++) {
					J[B] = K(N[B], X[B % Z]);
				}
				return J;
			}



			function wk(N) {
				return R(N, 0x0);
			}

			function q(wq) {
				var zc = panduan,
					wH = [];
				if (!wq[zc(0x3ff)]) {
					return wk(0x40);
				}
				if (wq['length'] >= 0x40) {
					return wq[zc(0xe9)](0x0, 0x40);
				}
				for (var wp = 0x0; wp < 0x40; wp++) {
					wH[wp] = wq[wp % wq[zc(0x3ff)]];
				}
				return wH;
			}

			function O(N) {
				var FB = panduan;
				N = window[FB(0x52b)](N);
				for (var X = [], J = 0x0, Z = N[FB(0x3ff)]; J < Z; J++)
					'%' === N[FB(0x228)](J) ? J + 0x2 < Z && X[FB(0x31b)](A('' + N['charAt'](++J) + N[FB(0x228)]
						(++J))[
						0x0]) : X['push'](F(N[FB(0x409)](J)));
				return X;
			}
			let wq = O("fd6a43ae25f74398b61c03c83be37449"),
				wH = Z();
			let wq1 = q(wq);
			let wq2 = wm(wq1, q(wH));
			let wq3 = q(wq2);
			return [wq3, wH];


		}

		function wC(wH, wp) {
			var R4 = panduan;
			if (Array[R4(0x784)](wH))
				return wH;
			if (Symbol['iterator'] in Object(wH))
				return wq(wH, wp);
			throw new TypeError('Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance');
		}

		function j(N) {
			function Y(N) {
				var X = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
				return '' + X[N >>> 0x4 & 0xf] + X[0xf & N];
			}

			function m(N) {
				var X = [];
				return X[0x0] = F(N >>> 0x18 & 0xff),
					X[0x1] = F(N >>> 0x10 & 0xff),
					X[0x2] = F(N >>> 0x8 & 0xff),
					X[0x3] = F(0xff & N),
					X;
			}

			function I(N) {
				var Fc = panduan;
				return N[Fc(0x65c)](function(X) {
					return Y(X);
				})[Fc(0x5f8)]('');
			}

			function q(N) {
				return I(m(N));
			}
			for (var X = [0x0, 0x77073096, 0xee0e612c, 0x990951ba, 0x76dc419, 0x706af48f, 0xe963a535,
					0x9e6495a3,
					0xedb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x9b64c2b, 0x7eb17cbd, 0xe7b82d07,
					0x90bf1d91,
					0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551,
					0x83d385c7,
					0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63,
					0x8d080df5,
					0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd,
					0xa50ab56b,
					0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf,
					0xabd13d59,
					0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599,
					0xb8bda50f,
					0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab,
					0xb6662d3d,
					0x76dc4190, 0x1db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x6b6b51f, 0x9fbfe4a5,
					0xe8b8d433,
					0x7807c9a2, 0xf00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x86d3d2d, 0x91646c97,
					0xe6635c01,
					0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1,
					0xf50fc457,
					0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,
					0xfbd44c65,
					0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d,
					0xd3d6f4fb,
					0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f,
					0xdd0d7cc9,
					0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409,
					0xce61e49f,
					0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b,
					0xc0ba6cad,
					0xedb88320, 0x9abfb3b6, 0x3b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x4db2615,
					0x73dc1683,
					0xe3630b12, 0x94643b84, 0xd6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0xa00ae27,
					0x7d079eb1,
					0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671,
					0x6e6b06e7,
					0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43,
					0x60b08ed5,
					0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd,
					0x48b2364b,
					0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,
					0x4669be79,
					0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9,
					0x5505262f,
					0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b,
					0x5bdeae1d,
					0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x26d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785,
					0x5005713,
					0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0xcb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7,
					0xbdbdf21,
					0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,
					0x18b74777,
					0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3,
					0x166ccf45,
					0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d,
					0x3e6e77db,
					0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f,
					0x30b5ffe9,
					0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729,
					0x23d967bf,
					0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,
					0x2d02ef8d
				], J = 0xffffffff, Z = 0x0, B = N['length']; Z < B; Z++)
				J = J >>> 0x8 ^ X[0xff & (J ^ N[Z])];
			return q(0xffffffff ^ J);
		}

		function K(wq) {
			var zP = panduan;
			if (Array['isArray'](wq)) {
				for (var wH = 0x0, wp = Array(wq['length']); wH < wq[zP(0x3ff)]; wH++)
					wp[wH] = wq[wH];
				return wp;
			}
			return Array[zP(0x2cd)](wq);
		}

		function X(wq) {
			var zS = panduan;
			if (wq['length'] % 0x40 !== 0x0)
				return [];
			for (var wH = [], wp = wq[zS(0x3ff)] / 0x40, wo = 0x0, wn = 0x0; wo < wp; wo++) {
				wH[wo] = [];
				for (var wM = 0x0; wM < 0x40; wM++)
					wH[wo][wM] = wq[wn++];
			}
			return wH;
		}


		function w6(wq) {


			function w5(wq) {
				var R0 = panduan,
					wH = arguments[R0(0x3ff)] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : 0x0;
				return wH + 0x100 >= 0x0 ? wq : [];
			}

			function G(wq, wH) {
				var zG = panduan;
				if (!wq[zG(0x3ff)])
					return [];
				wH = wT(wH);
				for (var wp = [], wo = 0x0, wn = wq['length']; wo < wn; wo++)
					wp[zG(0x31b)](wu(wq[wo], wH));
				return wp;
			}

			function w2(wq, wH) {
				function wW(N, X) {
					return F(N + X);
				}

				function wT(N) {
					return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
				}
				var zb = panduan;
				if (!wq[zb(0x3ff)])
					return [];
				wH = wT(wH);
				for (var wp = [], wo = 0x0, wn = wq[zb(0x3ff)]; wo < wn; wo++)
					wp[zb(0x31b)](wW(wq[wo], wH));
				return wp;
			}

			function w0(wq, wH) {
				function wT(N) {
					return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
				}

				function wu(N, X) {
					return F(F(N) ^ F(X));
				}
				var zx = panduan;
				if (!wq[zx(0x3ff)])
					return [];
				wH = wT(wH);
				for (var wp = [], wo = 0x0, wn = wq[zx(0x3ff)]; wo < wn; wo++)
					wp[zx(0x31b)](wu(wq[wo], wH++));
				return wp;
			}

			function w3(wq, wH) {
				function wT(N) {
					return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
				}
				var zD = panduan;
				if (!wq[zD(0x3ff)])
					return [];
				wH = wT(wH);
				for (var wp = [], wo = 0x0, wn = wq[zD(0x3ff)]; wo < wn; wo++)
					wp[zD(0x31b)](wW(wq[wo], wH++));
				return wp;
			}

			function w1(wq, wH) {
				function wu(N, X) {
					return F(F(N) ^ F(X));
				}

				function wT(N) {
					return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
				}
				var zU = panduan;
				if (!wq['length'])
					return [];
				wH = wT(wH);
				for (var wp = [], wo = 0x0, wn = wq[zU(0x3ff)]; wo < wn; wo++)
					wp[zU(0x31b)](wu(wq[wo], wH--));
				return wp;
			}

			function w4(wq, wH) {
				function wW(N, X) {
					return F(N + X);
				}

				function wT(N) {
					return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
				}
				var zv = panduan;
				if (!wq[zv(0x3ff)])
					return [];
				wH = wT(wH);
				for (var wp = [], wo = 0x0, wn = wq['length']; wo < wn; wo++)
					wp[zv(0x31b)](wW(wq[wo], wH--));
				return wp;
			}

			function ws(N) {
				var FP = panduan;
				N = '' + N;
				var X = parseInt(N[FP(0x228)](0x0), 0x10) << 0x4,
					J = parseInt(N[FP(0x228)](0x1), 0x10);
				return F(X + J);
			}
			var R1 = panduan;
			for (var wH = [w5, G, w2, w0, w3, w1, w4], wp = "037606da0296055c", wo = 0x0, wn = wp[R1(
					0x3ff)]; wo < wn;) {
				var wM = wp[R1(0x40a)](wo, wo + 0x4),
					wg = ws(wM['substring'](0x0, 0x2)),
					wj = ws(wM['substring'](0x2, 0x4));
				wq = wH[wg](wq, wj),
					wo += 0x4;
			}
			return wq;
		}

		function W() {
			var FJ = C;
			for (var N = arguments[FJ(0x3ff)] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : [], X =
					arguments[
						'length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : [], J = [], Z = X[FJ(
						0x3ff)],
					B = 0x0, E = N['length']; B < E; B++)
				J[B] = k(N[B], X[B % Z]);
			return J;
		}

		function T() {
			var FZ = C;
			for (var N = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : [], X =
					arguments[FZ(
						0x3ff)] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : [], J = [], Z = X[FZ(
						0x3ff)], B =
					0x0, E = N[FZ(0x3ff)]; B < E; B++)
				J[B] = K(N[B], X[B % Z]);
			return J;
		}

		function J(wq) {
			let za = panduan

			function wF(N) {
				var Fh = panduan;
				N = '' + N;
				for (var X = [], J = 0x0, Z = 0x0, B = N['length'] / 0x2; J < B; J++) {
					var E = parseInt(N[Fh(0x228)](Z++), 0x10) << 0x4,
						P = parseInt(N[Fh(0x228)](Z++), 0x10);
					X[J] = F(E + P);
				}
				return X;
			}

			let wH = function(wM) {
				var wg = wF(
					"a7be3f3933fa8c5fcf86c4b6908b569ba1e26c1a6d7cfbf60ae4b00e074a194dac4b73e7f898541159a39d08183b76eedee3ed341e6685d2357440158394b1ff03a9004cbbb5ca7dcb7f41489a16e03dcc9c71eb3c9796685b1d01b4d56193a6e1f1a2470445c191ae49c5d82765dc82c350f263387a24a502fcbf442e2dddaad0e936d9ea22b89275307b42518fbc3a626ba806d4ecd6d725f50cc8c72fefa4551ccd6fc9b2b7ab954f815c7264c6e51f4eaf99885a79892b1b60a0b3526e57ba5d178d370958847eb9fd28f9ce0bc023f4148a2adfe632126769057043d3bd8eda0df7872629f3809ef05310e83113216afe202c460fc23e789f77d1addb5e"
				);
				return wg[0x10 * (wM >>> 0x4 & 0xf) + (0xf & wM)];
			};
			if (!wq['length']) {
				return [];
			}
			let wp = []
			let wn = wq['length']
			for (let wo = 0x0; wo < wn; wo++) {
				wp[wo] = wH(wq[wo]);
			}
			return wp;
		}

		function F(N) {
			return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
		}

		function O(N) {
			var FB = panduan;
			N = window[FB(0x52b)](N);
			for (var X = [], J = 0x0, Z = N[FB(0x3ff)]; J < Z; J++)
				'%' === N[FB(0x228)](J) ? J + 0x2 < Z && X[FB(0x31b)](A('' + N['charAt'](++J) + N[FB(0x228)](++
					J))[0x0]) :
				X['push'](F(N[FB(0x409)](J)));
			return X;
		}

		function H(wq) {
			function wl(N) {
				var X = [];
				return X[0x0] = F(N >>> 0x18 & 0xff),
					X[0x1] = F(N >>> 0x10 & 0xff),
					X[0x2] = F(N >>> 0x8 & 0xff),
					X[0x3] = F(0xff & N),
					X;
			}

			function wz(N, X, J, Z, B) {
				for (var E = 0x0, P = N['length']; E < B; E++)
					X + E < P && (J[Z + E] = N[X + E]);
				return J;
			}
			var zf = panduan;
			if (!wq['length'])
				return wk(0x40);
			var wH = [],
				wp = wq[zf(0x3ff)],
				wo = wp % 0x40 <= 0x3c ? 0x40 - wp % 0x40 - 0x4 : 0x80 - wp % 0x40 - 0x4;
			wz(wq, 0x0, wH, 0x0, wp);
			for (var wn = 0x0; wn < wo; wn++)
				wH[wp + wn] = 0x0;
			return wz(wl(wp), 0x0, wH, wp + wo, 0x4),
				wH;
		}

		function wm() {
			function K(N, X) {
				return F(F(N) ^ F(X));
			}
			var FZ = panduan;
			var N = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : []
			let X = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : []
			let J = []
			let Z = X['length']
			let B = 0x0
			for (let E = N['length']; B < E; B++)
				J[B] = K(N[B], X[B % Z]);
			return J;
		}

		function wi() {
			function k(N, X) {
				return F(N + X);
			}
			let FJ = panduan;
			let N = arguments[FJ(0x3ff)] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : []
			let X = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : []
			let J = []
			let Z = X[FJ(0x3ff)]
			let B = 0x0
			for (let E = N['length']; B < E; B++) {
				J[B] = k(N[B], X[B % Z]);
			}
			return J;
		}

		//wz(wX, 0x0, we, 0x40 * wJ + 0x4, 0x40);
		function wz(N, X, J, Z, B) {
			// console.log(N, X, J, Z);
			let P = N['length']
			for (var E = 0x0; E < B; E++) {
				// console.log(J[Z + E]);
				// console.log(N[X + E]);
				X + E < P && (J[Z + E] = N[X + E]);
			}
			return J;
		}

		function wL(q, H, M) {

			function k(q, H, M) {

				function F(q, H, M) {

					var Kd = panduan,
						j = void 0x0,
						N = void 0x0,
						X = void 0x0,
						J = [];
					switch (q[Kd(0x3ff)]) {
						case 0x1:
							j = q[0x0],
								N = X = 0x0,
								J['push'](H[j >>> 0x2 & 0x3f], H[(j << 0x4 & 0x30) + (N >>> 0x4 & 0xf)], M, M);
							break;
						case 0x2:
							j = q[0x0],
								N = q[0x1],
								X = 0x0,
								J[Kd(0x31b)](H[j >>> 0x2 & 0x3f], H[(j << 0x4 & 0x30) + (N >>> 0x4 & 0xf)], H[(
									N << 0x2 &
									0x3c) + (X >>> 0x6 & 0x3)], M);
							break;
						case 0x3:
							j = q[0x0],
								N = q[0x1],
								X = q[0x2],
								J[Kd(0x31b)](H[j >>> 0x2 & 0x3f], H[(j << 0x4 & 0x30) + (N >>> 0x4 & 0xf)], H[(
									N << 0x2 &
									0x3c) + (X >>> 0x6 & 0x3)], H[0x3f & X]);
							break;
						default:
							return '';
					}
					return J[Kd(0x5f8)]('');
				}
				var KO = panduan;
				if (!q || 0x0 === q[KO(0x3ff)])
					return '';
				try {
					for (var j = 0x0, N = []; j < q[KO(0x3ff)];) {
						if (!(j + 0x3 <= q[KO(0x3ff)])) {
							var X = q[KO(0x482)](j);
							N[KO(0x31b)](F(X, H, M));
							break;
						}
						var J = q['slice'](j, j + 0x3);
						N[KO(0x31b)](F(J, H, M)),
							j += 0x3;
					}

					return N[KO(0x5f8)]('');
				} catch (Z) {
					return '';
				}
			}
			var KI = panduan,
				j = void 0x0 !== H && null !== H ? H :
				"MB.CfHUzEeJpsuGkgNwhqiSaI4Fd9L6jYKZAxn1/Vml0c5rbXRP+8tD3QTO2vWyo",
				N = void 0x0 !== M && null !== M ? M : "7";
			return k(q, j[KI(0x68e)](''), N);
		}
		var R2 = panduan;
		var wH = O(wq),
			wp = w7(),
			wo = wC(wp, 0x2),
			wn = wo[0x0],
			wM = wo[0x1],
			wg = O(j(wH)),
			wj = H([][R2(
				0x12e)](K(wH), K(wg))),
			wN = X(wj),
			we = [][R2(0x12e)](K(wM)),
			wX = wn,
			wJ = 0x0;
		for (wZ = wN[R2(0x3ff)]; wJ < wZ; wJ++) {
			let wh = wm(w6(wN[wJ]), wn)
			let wB = wi(wh, wX)
			wh = wm(wB, wX)
			wX = J(J(wh))
			wz(wX, 0x0, we, 0x40 * wJ + 0x4, 0x40);
		}
		// console.log(wz(wX, 0x0, we, 0x40 * wJ + 0x4, 0x40));
		return wL(we);

	}


	function sample(W, y) {


		function GG(wq, wH) {
			var zG = panduan;
			if (!wq[zG(0x3ff)])
				return [];
			wH = wT(wH);
			for (var wp = [], wo = 0x0, wn = wq['length']; wo < wn; wo++)
				wp[zG(0x31b)](wu(wq[wo], wH));
			return wp;
		}




		function wT(N) {
			return N < -0x80 ? wT(0x100 + N) : N > 0x7f ? wT(N - 0x100) : N;
		}


		function j(wq) {
			function Z() {
				function wT(N) {
					return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
				}
				var zr = panduan;
				for (var wq = [], wH = 0x0; wH < 0x4; wH++)
					wq[wH] = wT(Math[zr(0x39e)](0x100 * Math[zr(0x2d7)]()));
				return wq;
			}

			function w7() {
				function wm() {
					function K(N, X) {
						return F(F(N) ^ F(X));
					}
					var FZ = panduan;
					var N = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : [], //64
						X = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : [], //64
						J = [],
						Z = X.length,
						B = 0x0;

					for (let E = N.length; B < E; B++) {
						J[B] = K(N[B], X[B % Z]);
					}
					return J;
				}



				function wk(N) {
					return R(N, 0x0);
				}

				function q(wq) {
					var zc = panduan,
						wH = [];
					if (!wq[zc(0x3ff)]) {
						return wk(0x40);
					}
					if (wq['length'] >= 0x40) {
						return wq[zc(0xe9)](0x0, 0x40);
					}
					for (var wp = 0x0; wp < 0x40; wp++) {
						wH[wp] = wq[wp % wq[zc(0x3ff)]];
					}
					return wH;
				}

				function O(N) {
					var FB = panduan;
					N = window[FB(0x52b)](N);
					for (var X = [], J = 0x0, Z = N[FB(0x3ff)]; J < Z; J++)
						'%' === N[FB(0x228)](J) ? J + 0x2 < Z && X[FB(0x31b)](A('' + N['charAt'](++J) + N[FB(0x228)]
							(++J))[
							0x0]) : X['push'](F(N[FB(0x409)](J)));
					return X;
				}
				let wq = O("fd6a43ae25f74398b61c03c83be37449"),
					wH = Z();
				let wq1 = q(wq);
				let wq2 = wm(wq1, q(wH));
				let wq3 = q(wq2);
				return [wq3, wH];


			}

			function wC(wH, wp) {
				var R4 = panduan;
				if (Array[R4(0x784)](wH))
					return wH;
				if (Symbol['iterator'] in Object(wH))
					return wq(wH, wp);
				throw new TypeError('Invalid\x20attempt\x20to\x20destructure\x20non-iterable\x20instance');
			}

			function j(N) {
				function Y(N) {
					var X = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
					return '' + X[N >>> 0x4 & 0xf] + X[0xf & N];
				}

				function m(N) {
					var X = [];
					return X[0x0] = F(N >>> 0x18 & 0xff),
						X[0x1] = F(N >>> 0x10 & 0xff),
						X[0x2] = F(N >>> 0x8 & 0xff),
						X[0x3] = F(0xff & N),
						X;
				}

				function I(N) {
					var Fc = panduan;
					return N[Fc(0x65c)](function(X) {
						return Y(X);
					})[Fc(0x5f8)]('');
				}

				function q(N) {
					return I(m(N));
				}
				for (var X = [0x0, 0x77073096, 0xee0e612c, 0x990951ba, 0x76dc419, 0x706af48f, 0xe963a535,
						0x9e6495a3,
						0xedb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x9b64c2b, 0x7eb17cbd, 0xe7b82d07,
						0x90bf1d91,
						0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551,
						0x83d385c7,
						0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63,
						0x8d080df5,
						0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd,
						0xa50ab56b,
						0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf,
						0xabd13d59,
						0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599,
						0xb8bda50f,
						0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab,
						0xb6662d3d,
						0x76dc4190, 0x1db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x6b6b51f, 0x9fbfe4a5,
						0xe8b8d433,
						0x7807c9a2, 0xf00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x86d3d2d, 0x91646c97,
						0xe6635c01,
						0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1,
						0xf50fc457,
						0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3,
						0xfbd44c65,
						0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d,
						0xd3d6f4fb,
						0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f,
						0xdd0d7cc9,
						0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409,
						0xce61e49f,
						0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b,
						0xc0ba6cad,
						0xedb88320, 0x9abfb3b6, 0x3b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x4db2615,
						0x73dc1683,
						0xe3630b12, 0x94643b84, 0xd6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0xa00ae27,
						0x7d079eb1,
						0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671,
						0x6e6b06e7,
						0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43,
						0x60b08ed5,
						0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd,
						0x48b2364b,
						0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef,
						0x4669be79,
						0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9,
						0x5505262f,
						0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b,
						0x5bdeae1d,
						0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x26d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785,
						0x5005713,
						0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0xcb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7,
						0xbdbdf21,
						0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1,
						0x18b74777,
						0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3,
						0x166ccf45,
						0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d,
						0x3e6e77db,
						0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f,
						0x30b5ffe9,
						0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729,
						0x23d967bf,
						0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b,
						0x2d02ef8d
					], J = 0xffffffff, Z = 0x0, B = N['length']; Z < B; Z++)
					J = J >>> 0x8 ^ X[0xff & (J ^ N[Z])];
				return q(0xffffffff ^ J);
			}

			function K(wq) {
				var zP = panduan;
				if (Array['isArray'](wq)) {
					for (var wH = 0x0, wp = Array(wq['length']); wH < wq[zP(0x3ff)]; wH++)
						wp[wH] = wq[wH];
					return wp;
				}
				return Array[zP(0x2cd)](wq);
			}

			function X(wq) {
				var zS = panduan;
				if (wq['length'] % 0x40 !== 0x0)
					return [];
				for (var wH = [], wp = wq[zS(0x3ff)] / 0x40, wo = 0x0, wn = 0x0; wo < wp; wo++) {
					wH[wo] = [];
					for (var wM = 0x0; wM < 0x40; wM++)
						wH[wo][wM] = wq[wn++];
				}
				return wH;
			}


			function w6(wq) {


				function w5(wq) {
					var R0 = panduan,
						wH = arguments[R0(0x3ff)] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : 0x0;
					return wH + 0x100 >= 0x0 ? wq : [];
				}

				function G(wq, wH) {
					var zG = panduan;
					if (!wq[zG(0x3ff)])
						return [];
					wH = wT(wH);
					for (var wp = [], wo = 0x0, wn = wq['length']; wo < wn; wo++)
						wp[zG(0x31b)](wu(wq[wo], wH));
					return wp;
				}

				function w2(wq, wH) {
					function wW(N, X) {
						return F(N + X);
					}

					function wT(N) {
						return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
					}
					var zb = panduan;
					if (!wq[zb(0x3ff)])
						return [];
					wH = wT(wH);
					for (var wp = [], wo = 0x0, wn = wq[zb(0x3ff)]; wo < wn; wo++)
						wp[zb(0x31b)](wW(wq[wo], wH));
					return wp;
				}

				function w0(wq, wH) {
					function wT(N) {
						return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
					}

					function wu(N, X) {
						return F(F(N) ^ F(X));
					}
					var zx = panduan;
					if (!wq[zx(0x3ff)])
						return [];
					wH = wT(wH);
					for (var wp = [], wo = 0x0, wn = wq[zx(0x3ff)]; wo < wn; wo++)
						wp[zx(0x31b)](wu(wq[wo], wH++));
					return wp;
				}

				function w3(wq, wH) {
					function wT(N) {
						return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
					}
					var zD = panduan;
					if (!wq[zD(0x3ff)])
						return [];
					wH = wT(wH);
					for (var wp = [], wo = 0x0, wn = wq[zD(0x3ff)]; wo < wn; wo++)
						wp[zD(0x31b)](wW(wq[wo], wH++));
					return wp;
				}

				function w1(wq, wH) {
					function wu(N, X) {
						return F(F(N) ^ F(X));
					}

					function wT(N) {
						return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
					}
					var zU = panduan;
					if (!wq['length'])
						return [];
					wH = wT(wH);
					for (var wp = [], wo = 0x0, wn = wq[zU(0x3ff)]; wo < wn; wo++)
						wp[zU(0x31b)](wu(wq[wo], wH--));
					return wp;
				}

				function w4(wq, wH) {
					function wW(N, X) {
						return F(N + X);
					}

					function wT(N) {
						return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
					}
					var zv = panduan;
					if (!wq[zv(0x3ff)])
						return [];
					wH = wT(wH);
					for (var wp = [], wo = 0x0, wn = wq['length']; wo < wn; wo++)
						wp[zv(0x31b)](wW(wq[wo], wH--));
					return wp;
				}

				function ws(N) {
					var FP = panduan;
					N = '' + N;
					var X = parseInt(N[FP(0x228)](0x0), 0x10) << 0x4,
						J = parseInt(N[FP(0x228)](0x1), 0x10);
					return F(X + J);
				}
				var R1 = panduan;
				for (var wH = [w5, G, w2, w0, w3, w1, w4], wp = "037606da0296055c", wo = 0x0, wn = wp[R1(
						0x3ff)]; wo < wn;) {
					var wM = wp[R1(0x40a)](wo, wo + 0x4),
						wg = ws(wM['substring'](0x0, 0x2)),
						wj = ws(wM['substring'](0x2, 0x4));
					wq = wH[wg](wq, wj),
						wo += 0x4;
				}
				return wq;
			}

			function W() {
				var FJ = C;
				for (var N = arguments[FJ(0x3ff)] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : [], X =
						arguments[
							'length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : [], J = [], Z = X[FJ(
							0x3ff)],
						B = 0x0, E = N['length']; B < E; B++)
					J[B] = k(N[B], X[B % Z]);
				return J;
			}

			function T() {
				var FZ = C;
				for (var N = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : [], X =
						arguments[FZ(
							0x3ff)] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : [], J = [], Z = X[FZ(
							0x3ff)], B =
						0x0, E = N[FZ(0x3ff)]; B < E; B++)
					J[B] = K(N[B], X[B % Z]);
				return J;
			}

			function J(wq) {
				let za = panduan

				function wF(N) {
					var Fh = panduan;
					N = '' + N;
					for (var X = [], J = 0x0, Z = 0x0, B = N['length'] / 0x2; J < B; J++) {
						var E = parseInt(N[Fh(0x228)](Z++), 0x10) << 0x4,
							P = parseInt(N[Fh(0x228)](Z++), 0x10);
						X[J] = F(E + P);
					}
					return X;
				}

				let wH = function(wM) {
					var wg = wF(
						"a7be3f3933fa8c5fcf86c4b6908b569ba1e26c1a6d7cfbf60ae4b00e074a194dac4b73e7f898541159a39d08183b76eedee3ed341e6685d2357440158394b1ff03a9004cbbb5ca7dcb7f41489a16e03dcc9c71eb3c9796685b1d01b4d56193a6e1f1a2470445c191ae49c5d82765dc82c350f263387a24a502fcbf442e2dddaad0e936d9ea22b89275307b42518fbc3a626ba806d4ecd6d725f50cc8c72fefa4551ccd6fc9b2b7ab954f815c7264c6e51f4eaf99885a79892b1b60a0b3526e57ba5d178d370958847eb9fd28f9ce0bc023f4148a2adfe632126769057043d3bd8eda0df7872629f3809ef05310e83113216afe202c460fc23e789f77d1addb5e"
					);
					return wg[0x10 * (wM >>> 0x4 & 0xf) + (0xf & wM)];
				};
				if (!wq['length']) {
					return [];
				}
				let wp = []
				let wn = wq['length']
				for (let wo = 0x0; wo < wn; wo++) {
					wp[wo] = wH(wq[wo]);
				}
				return wp;
			}

			function F(N) {
				return N < -0x80 ? F(0x100 + N) : N > 0x7f ? F(N - 0x100) : N;
			}

			function O(N) {
				var FB = panduan;
				N = window[FB(0x52b)](N);
				for (var X = [], J = 0x0, Z = N[FB(0x3ff)]; J < Z; J++)
					'%' === N[FB(0x228)](J) ? J + 0x2 < Z && X[FB(0x31b)](A('' + N['charAt'](++J) + N[FB(0x228)](++
						J))[0x0]) :
					X['push'](F(N[FB(0x409)](J)));
				return X;
			}

			function H(wq) {
				function wl(N) {
					var X = [];
					return X[0x0] = F(N >>> 0x18 & 0xff),
						X[0x1] = F(N >>> 0x10 & 0xff),
						X[0x2] = F(N >>> 0x8 & 0xff),
						X[0x3] = F(0xff & N),
						X;
				}

				function wz(N, X, J, Z, B) {
					for (var E = 0x0, P = N['length']; E < B; E++)
						X + E < P && (J[Z + E] = N[X + E]);
					return J;
				}
				var zf = panduan;
				if (!wq['length'])
					return wk(0x40);
				var wH = [],
					wp = wq[zf(0x3ff)],
					wo = wp % 0x40 <= 0x3c ? 0x40 - wp % 0x40 - 0x4 : 0x80 - wp % 0x40 - 0x4;
				wz(wq, 0x0, wH, 0x0, wp);
				for (var wn = 0x0; wn < wo; wn++)
					wH[wp + wn] = 0x0;
				return wz(wl(wp), 0x0, wH, wp + wo, 0x4),
					wH;
			}

			function wm() {
				function K(N, X) {
					return F(F(N) ^ F(X));
				}
				var FZ = panduan;
				var N = arguments['length'] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : []
				let X = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : []
				let J = []
				let Z = X['length']
				let B = 0x0
				for (let E = N['length']; B < E; B++)
					J[B] = K(N[B], X[B % Z]);
				return J;
			}

			function wi() {
				function k(N, X) {
					return F(N + X);
				}
				let FJ = panduan;
				let N = arguments[FJ(0x3ff)] > 0x0 && void 0x0 !== arguments[0x0] ? arguments[0x0] : []
				let X = arguments['length'] > 0x1 && void 0x0 !== arguments[0x1] ? arguments[0x1] : []
				let J = []
				let Z = X[FJ(0x3ff)]
				let B = 0x0
				for (let E = N['length']; B < E; B++) {
					J[B] = k(N[B], X[B % Z]);
				}
				return J;
			}

			//wz(wX, 0x0, we, 0x40 * wJ + 0x4, 0x40);
			function wz(N, X, J, Z, B) {
				// console.log(N, X, J, Z);
				let P = N['length']
				for (var E = 0x0; E < B; E++) {
					// console.log(J[Z + E]);
					// console.log(N[X + E]);
					X + E < P && (J[Z + E] = N[X + E]);
				}
				return J;
			}

			function wL(q, H, M) {

				function k(q, H, M) {

					function F(q, H, M) {

						var Kd = panduan,
							j = void 0x0,
							N = void 0x0,
							X = void 0x0,
							J = [];
						switch (q[Kd(0x3ff)]) {
							case 0x1:
								j = q[0x0],
									N = X = 0x0,
									J['push'](H[j >>> 0x2 & 0x3f], H[(j << 0x4 & 0x30) + (N >>> 0x4 & 0xf)], M, M);
								break;
							case 0x2:
								j = q[0x0],
									N = q[0x1],
									X = 0x0,
									J[Kd(0x31b)](H[j >>> 0x2 & 0x3f], H[(j << 0x4 & 0x30) + (N >>> 0x4 & 0xf)], H[(
										N << 0x2 &
										0x3c) + (X >>> 0x6 & 0x3)], M);
								break;
							case 0x3:
								j = q[0x0],
									N = q[0x1],
									X = q[0x2],
									J[Kd(0x31b)](H[j >>> 0x2 & 0x3f], H[(j << 0x4 & 0x30) + (N >>> 0x4 & 0xf)], H[(
										N << 0x2 &
										0x3c) + (X >>> 0x6 & 0x3)], H[0x3f & X]);
								break;
							default:
								return '';
						}
						return J[Kd(0x5f8)]('');
					}
					var KO = panduan;
					if (!q || 0x0 === q[KO(0x3ff)])
						return '';
					try {
						for (var j = 0x0, N = []; j < q[KO(0x3ff)];) {
							if (!(j + 0x3 <= q[KO(0x3ff)])) {
								var X = q[KO(0x482)](j);
								N[KO(0x31b)](F(X, H, M));
								break;
							}
							var J = q['slice'](j, j + 0x3);
							N[KO(0x31b)](F(J, H, M)),
								j += 0x3;
						}

						return N[KO(0x5f8)]('');
					} catch (Z) {
						return '';
					}
				}
				var KI = panduan,
					j = void 0x0 !== H && null !== H ? H :
					"MB.CfHUzEeJpsuGkgNwhqiSaI4Fd9L6jYKZAxn1/Vml0c5rbXRP+8tD3QTO2vWyo",
					N = void 0x0 !== M && null !== M ? M : "7";
				return k(q, j[KI(0x68e)](''), N);
			}
			var R2 = panduan;
			var wH = O(wq),
				wp = w7(),
				wo = wC(wp, 0x2),
				wn = wo[0x0],
				wM = wo[0x1],
				wg = O(j(wH)),
				wj = H([][R2(
					0x12e)](K(wH), K(wg))),
				wN = X(wj),
				we = [][R2(0x12e)](K(wM)),
				wX = wn,
				wJ = 0x0;
			for (wZ = wN[R2(0x3ff)]; wJ < wZ; wJ++) {
				let wh = wm(w6(wN[wJ]), wn)
				let wB = wi(wh, wX)
				wh = wm(wB, wX)
				wX = J(J(wh))
				wz(wX, 0x0, we, 0x40 * wJ + 0x4, 0x40);
			}
			// console.log(wz(wX, 0x0, we, 0x40 * wJ + 0x4, 0x40));
			return wL(we);
		}




		var kq = panduan,
			U = this[kq(0x615)];
		if ('dragend' === U['status'])
			return void Object['assign'](U, {
				'beginTime': 0x0
			});




		function unique2DArray(y) {
			let QC = panduan,
				K = arguments['length'] > 1 && void 0 !== arguments[1] ? arguments[1] : 0;
			if (!Array[QC(0x784)](y))
				return y;
			let T = {}
			let m = []
			let O = y[QC(0x3ff)]
			for (let A = 0; A < O; A++) {
				let L = y[A][K];
				// console.log(L);
				null === L || void 0x0 === L || T[L] || (T[L] = !0x0,
					m[QC(0x31b)](y[A]));
			}
			return m;
		}


		function onVerifyCaptcha(wK) {
			var sy = panduan;

			function uu(wN, we) {
				var uU = panduan;
				wN[uU(0x207)] = we[uU(0x207)];
			}

			function W() {
				var K6 = panduan;
				u(K[K6(0x66f)], y);
			}

			function _withCommit(W) {
				var K8 = panduan,
					y = this[K8(0x66a)];
				this[K8(0x66a)] = !0x0,
					W(),
					this[K8(0x66a)] = y;
			}

			function commit(W, y) {

				var K5 = panduan,
					K = this,
					T = {
						'type': W,
						'payload': y
					},
					u = this[K5(0x517)][W];
				return u ? (_withCommit(function() {
						var K6 = panduan;
						uu(K[K6(0x66f)], y);
					}),
					void this['_subscribers']['map'](function(m) {
						var K7 = K5;
						return m(T, K[K7(0x66f)]);
					})) : void F[K5(0x47c)](K5(0x34b) + W);
			}




		}

		var Q4 = panduan,
			K = W[Q4(0x3ff)];
		if (K <= y) {
			return W;
		}
		for (var T = [], m = 0x0, A = 0x0; A < K; A++)
			A >= m * (K - 0x1) / (y - 0x1) && (T['push'](W[A]),
				m += 0x1);
		return T;
	}




	//从0 到第一个位置 然后 从第一个位置在变化到第二个位置

	// function computLocation(coordinates) {}





	function simulateMouseMovement(points, steps) {
		const path = [];

		for (let i = 0; i < points.length; i++) {
			const start = points[i];
			const end = points[(i + 1) % points.length]; // Loop back to the first point after reaching the last
			let move = {
				"nativeEvent": {
					"event": {
						"isTrusted": true
					},
					"target": {},
					"type": "click",
					"clientX": points[i][0],
					"clientY": points[i][1],
					"pageX": 1157,
					"pageY": 202,
					"_fixed_2j7pp": true,
					"origin": {}
				},
				"target": {},
				"currentTarget": {},
				"pageX": points[i][0],
				"pageY": points[i][1],
				"clientX": points[i][0],
				"clientY": points[i][1],
				"defaultPrevented": false,
				"cancelBubble": false,
				"cancelImmediateBubble": false,
				"type": "click"
			}
			sleep(Math.floor(Math.random() * 600) + 1500)
			// if (i != points.length - 2) {
			console.log(move, points[i]);
			onClick(move)
			// }
			const linearPath = linearInterpolation(start, end, steps);
			path.push(...linearPath);

		}
		console.log(path);
		return path;
	}

	// 线性插值函数
	function linearInterpolation(start, end, steps) {
		const path = [];

		for (let step = 0; step <= steps; step++) {
			const t = step / steps;
			const x = start[0] + t * (end[0] - start[0]);
			const y = start[1] + t * (end[1] - start[1]);
			addtracedata(parseInt(x), parseInt(y))
			path.push([parseInt(x), parseInt(y)]);
		}
		return path;
	}

	// 打印轨迹信息




	function addtracedata(x, y) {
		// console.log(token, [Math['round'](x - 0), Math['round'](y - 0), new Date().getTime() -
		// 	startTime
		// ] + '');
		let M = N(token, [Math['round'](x - 0), Math['round'](y - 0), new Date().getTime() -
			startTime
		] + '');
		// console.log(M);
		this['traceData']['push'](M);
	}
	// function move(w) {
	// 	if (startTime) {
	// 		var F = {
	// 			"x": 938.5,
	// 			"y": 115.6875,
	// 			"width": 320,
	// 			"height": 160,
	// 			"top": 0,
	// 			"right": 1258.5,
	// 			"bottom": 275.6875,
	// 			"left": 0
	// 		}
	// 		let K = F['left']
	// 		let R = F['top']
	// 		M = N(token, [Math['round'](w['clientX'] - K), Math['round'](w['clientY'] - R)], new Date().getTime() -
	// 			startTime + '');
	// 		this['traceData']['push'](M);
	// 	}
	// }

	function shouldVerifyCaptcha() {
		let w = pointsStack;
		var F = w['map'](function(R) {
			return R['coord'];
		})
		K = this['traceData'];
		// this['onVerifyCaptcha']({
		// 	'data': JSON['stringify']({
		// 		'd': '',
		// 		'm': V(sample(K, 50)['join'](':')),
		// 		'p': V(F['join'](':')),
		// 		'ext': V(N(token, clickCounts + ',' +
		// 			K['length']))
		// 	})
		// });
		return {
			'd': '',
			'm': V(sample(K, 50)['join'](':')),
			'p': V(F['join'](':')),
			'ext': V(N(token, clickCounts + ',' +
				K['length']))
		}
	}



	function onClick(w) {
		if (ind == 0) {
			clickCounts = 0
			ind++
		}
		// F = this
		// K = this['$store']['state']
		// R = K['countsOfVerifyError']
		// M = K['config']
		// L = R > M['maxVerification']
		// this['clickCounts']++;
		// let n0 = this['$bgImg']['getBoundingClientRect']()
		//距视口左边的距离
		// let n1 = n0['left']
		let n1 = 0
		//距离适口顶的距离
		// let n2 = n0['top']
		let n2 = 0

		addPoint({
			'left': w['clientX'] - n1,
			'top': w['clientY'] - n2
		});

	}



	// function onClick(w) {
	// 	var ue = panduan,
	// 		F = this,
	// 		K = this['$store']['state'],
	// 		R = K['countsOfVerifyError'],
	// 		M = K['config'],
	// 		L = R > M['maxVerification'];
	// 	if (!L) {
	// 		this['clickCounts']++;

	// 		let n0 = this['$bgImg']['getBoundingClientRect']()
	// 		//距视口左边的距离
	// 		let n1 = n0['left']
	// 		//距离适口顶的距离
	// 		let n2 = n0['top']
	// 		this['pointsStack']['length'] || (this['beginTime'] = B['now']());
	// 		var n3 = this['pointsStack']['slice'](-0x1)[0x0];
	// 		return n3 && w['target'] === n3['el'] && !this[ue(0x1e0)][ue(0x2db)]['verifyStatus'] ? void B[ue(0x167)]
	// 			(function() {
	// 				var us = ue;
	// 				return F['$bgImg']['removeChild'](F['pointsStack']['pop']()['el']);
	// 			}) : void this['addPoint']({
	// 				'left': w['clientX'] - n1,
	// 				'top': w['clientY'] - n2
	// 			});
	// 	}
	// }

	// function addPoint(w) {
	// 	let uN = panduan
	// 	let F = w['left']
	// 	let K = w['top']
	// 	let R = this['pointsStack']['length'] + 0x1
	// 	if (!(R > this['MAX_POINTS'])) {
	// 		var M = document['createElement']('div');
	// 		M['className'] = 'yidun_icon-point yidun_point-' + R,
	// 			H['css'](M, 'left: ' + (F - 10) + 'px; top: ' + (K - 25) + 'px;'),
	// 			this['$bgImg']['appendChild'](M),
	// 			this['pointsStack']['push']({
	// 				'el': M,
	// 				'coord': z(this['$store']['state']['token'], [Math['round'](F), Math['round'](K), B[
	// 					'now']() - this['beginTime']] + '')
	// 			}),
	// 			shouldVerifyCaptcha();
	// 	}
	// }
	function addPoint(w) {
		let uN = panduan
		let F = w['left']
		let K = w['top']
		let R = pointsStack['length'] + 0x1
		var M = document['createElement']('div');
		M['className'] = 'yidun_icon-point yidun_point-' + R
		// console.log(token, [Math['round'](F), Math['round'](K), new Date().getTime() - startTime] +
		// 	'');
		pointsStack['push']({
			'el': M,
			'coord': N(token, [Math['round'](F), Math['round'](K), new Date().getTime() - startTime] +
				'')
		})
		clickCounts++
		// shouldVerifyCaptcha();
	}




	locations = locations.split('|')
	newlocations = locations.map(e => {
		return [parseInt(e.split(',')[0]), parseInt(e.split(',')[1])]
	})


	function sleep(ms) {
		// 使用setTimeout實現同步延遲
		const start = new Date().getTime();
		while (new Date().getTime() - start < ms);
	}

	function one() {
		return new Promise((resolve, reject) => {
			startTime = new Date().getTime()
			for (let i = 0; i < locations.length; i++) {
				let move = {
					"nativeEvent": {
						"event": {
							"isTrusted": true
						},
						"target": {},
						"type": "click",
						"clientX": newlocations[i][0],
						"clientY": newlocations[i][1],
						"pageX": 1157,
						"pageY": 202,
						"_fixed_2j7pp": true,
						"origin": {}
					},
					"target": {},
					"currentTarget": {},
					"pageX": newlocations[i][0],
					"pageY": newlocations[i][1],
					"clientX": newlocations[i][0],
					"clientY": newlocations[i][1],
					"defaultPrevented": false,
					"cancelBubble": false,
					"cancelImmediateBubble": false,
					"type": "click"
				}
				sleep(Math.floor(Math.random() * 1234) + 500)
				onClick(move)
			}
			console.log('执行完毕');
			//想办法让点击的间隔时间长点
			resolve("执行完毕")
			// setTimeout(() => {
			// 	let move = {
			// 		"nativeEvent": {
			// 			"event": {
			// 				"isTrusted": true
			// 			},
			// 			"target": {},
			// 			"type": "click",
			// 			"clientX": linearPath[linearPath.length - 1][0],
			// 			"clientY": linearPath[linearPath.length - 1][1],
			// 			"pageX": 1157,
			// 			"pageY": 202,
			// 			"_fixed_2j7pp": true,
			// 			"origin": {}
			// 		},
			// 		"target": {},
			// 		"currentTarget": {},
			// 		"pageX": linearPath[linearPath.length - 1][0],
			// 		"pageY": linearPath[linearPath.length - 1][1],
			// 		"clientX": linearPath[linearPath.length - 1][0],
			// 		"clientY": linearPath[linearPath.length - 1][1],
			// 		"defaultPrevented": false,
			// 		"cancelBubble": false,
			// 		"cancelImmediateBubble": false,
			// 		"type": "click"
			// 	}
			// 	onClick(move)
			// 	console.log('执行完毕');
			// 	resolve("执行完毕")
			// }, Math.floor(Math.random() * 3456) + 2000)
		})
	}

	function two() {
		return new Promise((resolve, reject) => {


			// 例子
			const coordinates = [
				// [0, 51],
				...newlocations
			];

			const randomNumber = Math.floor(Math.random() * 100) + 58;
			resolve(simulateMouseMovement(coordinates, randomNumber))
		})
	}

	function three() {
		console.log(pointsStack);
		return new Promise((resolve, reject) => {
			resolve(shouldVerifyCaptcha())

		})
	}
	// await one()
	await two()
	return await three();
}